שאלה 2:
לאפליקציה של משחק קלפים מסוג "מלחמה"
בנו מחלקה בשם Card
התכונות של מחלקה זו:
val מספר שלם (2 עד 14) .. נסיך = 11 מלכה = 12 מלך = 13 אס = 14
Color צבע : RED או BLACK
מחלקה בשם CardBox
המכילה 52 קלפים (במערך)
ערמת קלפים לשחקן א Queue1
ערמת קלפים לשחקן ב Queue2
ערמת קלפים – קופה Kopa
וכן מכילה את הפעולות:
הנח שלמחלקות יש פעולות GET + SET . לא צריך לממשם
A.
ערבב חפיסת קלפים:
30 פעם מגרילים זוג
מספרים בין 0 ל 51 ומחליפים את מיקומי הקלפים בינהם.
B. חלוקת קלפים לשחקנים:
העברת כל הקלפים מהקופה למערך הקלפים.
ערבוב המערך. וחלוקת הקלפים לשני השחקנים (Queue1 , Queue2 ) לסרוגין ( זוגיים
לשחק Queue1
ואי זוגיים לשחקן Queue2)
C. פעולה שמקבלת שחקן ומחזירה אמת אם אין לו קלפים בערמה.
D. מלחמה: שולפת קלף מכל שחקן, מדפיסה מי ניצח, ומכניסה את שני הקלפים
לערמה של המנצח. אם הקלפים שווים יוגרל בצורה רדנומלית
המנצח
א. ממש את הפעולה הבונה של Catd, הפעולה מקבלת את שתי התכונות של המחלקה
ב. כתוב את המשתנים של המחלקה וכותרת לכל פעולה במחלקה CardBox
ג. ממש את הפעולה שתערבב את הקלפים (A)
ד. כתוב את הפעולה הבונה של המחלקה CardBox, פעולה זו תאתחל את מערך הקלפים,( 4 קלפים מכל מספר.) תערבב את הקלפים ותחלק לשחקנים. ( אפשר להשתמש בכותרות הפעולות שכתבת בסעיף ב בלי לממשם)
ה.
צור מחלקה בשם Game שבה יש
מופע של מחלקת CardBox , הפעולה הבונה של מחלקה זו תשחק עד שלאחד
השחקנים יסתיימו הקלפים ותדפיס אם שם המנצח: (Queue1 או Queue2 ) . ( אפשר להשתמש בכותרות הפעולות שכתבת
בסעיף ב בלי לממשם)